package num98;

import java.util.LinkedList;

/**
 * @author : DuJiabao
 * @Date : 2021/2/6 17:14
 * @Project : sword-finger-offer
 * @File : null.java
 * @Desc : 不断更新左边的数的上限，以及右边的数的下限。
 */
public class Solution3 {
    public boolean isValidBST(TreeNode root) {
        return isValid(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
    }

    private boolean isValid(TreeNode node, int min, int max) {
        if (node == null) return true;
        if (node.val < min || node.val > max) return false;
        return isValid(node.left, min, node.val) && isValid(node.right, node.val, max);
    }

}
